Ball throwing machine and method

ABSTRACT

A ball throwing machine can include a hopper for receiving one or more balls and a ball delivery device. The ball delivery device can be used to throw or pitch a ball from the hopper to a user of the machine. The ball delivery device can include wheels to impart speed to the ball and a direction system to control the projection angle of the ball. The direction system can control at least one of the up and down angle and the side to side angle of the ball as it is thrown, among possibly other throwing parameters. A controller may be provided for controlling operation of the ball throwing machine.

BACKGROUND

In soccer, to be in control of the ball is of importance to every levelof player. The ability to control an awkward bouncing ball quickly andeffectively gives the player with the ball the immediate advantage.First touch is often the difference between success and failure in mostsituations during the match.

As players get older, the game gets faster and demands more speed.Consequently, there is a greater need for first-time passes and aprecise first touch on the ball. Often, players cannot always play afirst-time ball; therefore, they must trap the ball or may have todribble if no teammates are in position to receive a first-time pass. Aplayer will typically do one of four things when controlling the ball:shield the ball by putting their body between the ball and the opponent,pass the ball, shoot the ball, or dribble the ball. The space and time aplayer has to do these things can depend on how good the player's firsttouch is when receiving the ball.

Players can improve by developing a better touch or feel for the ball. Afine touch enables a player to be comfortable touching the ball with allparts of the foot as well as other parts of the body. It is helpful forplayers to practice controlling balls on the ground and balls in theair. Good ball control involves the ability to take the ball with onetouch in such a way that a player can play the ball with his nextmovement without having to chase or reach for it.

SUMMARY

In certain embodiments, a soccer ball throwing device includes a hopperthat can hold a plurality of soccer balls and a ball delivery devicethat can receive the soccer balls from the hopper. The ball deliverydevice can include one or more wheels that can impart motion to one ofthe soccer balls and a frame attached to the one or more wheels. Theframe can be positionable to control a trajectory of the ball. Thesoccer ball throwing device may also include a ball delivery controlcircuit that can control the position of the frame and the speed of theone or more wheels. Further, the ball throwing device can include acontroller in communication with the ball delivery control circuit. Thecontroller can include one or more processors that can at least: causethe soccer ball throwing device to perform an initial training programthat includes a set of one or more ball trapping drills, where thecontroller causes the soccer ball throwing device to pitch one or moreof the soccer balls to a player during said one or more ball trappingdrills, enabling the player to practice trapping the ball and therebyimprove ball control skills; record player training data that includesinformation regarding training of the player performed during theinitial training program; submit the player training data from thecontroller over a network to a soccer network application along with arequest for feedback from a remote coach through the soccer networkapplication; and in response to submission of the training session data,receive a customized training program from the coach via the soccernetwork application. The customized training program can include one ormore second drills to be executed by the soccer ball throwing device.

In various embodiments, a method of controlling a soccer ball throwingdevice includes providing a soccer ball throwing device having a hopperthat can hold a plurality of soccer balls, a ball delivery device thatcan receive the soccer balls from the hopper, where the ball deliverydevice has one or more wheels that can impart motion to one of thesoccer balls, and a frame attached to the one or more wheels, where theframe is positionable to control a trajectory of the ball, and a balldelivery control circuit that can control the position of the frame andthe speed of the one or more wheels. The method can also includecommunicating with the soccer ball throwing device via a controllerincluding computer hardware. The method may also include causing thesoccer ball throwing device, with the controller, to perform an initialtraining program that comprises a set of one or more ball trappingdrills, where the controller causes the soccer ball throwing device topitch one or more balls to a player during said one or more balltrapping drills, enabling the player to practice trapping the ball andthereby improve ball control skills. Moreover, the method can includerecording player training data that includes information regardingtraining of the player performed during the initial training program,submitting the player training data from the controller over a networkto a soccer network application along with a request for feedback from aremote coach through the soccer network application, and in response tosaid submitting the training session data, receiving a customizedtraining program from the coach via the soccer network application. Thecustomized training program can include one or more second drills to beexecuted by the soccer ball throwing device. The method can beimplemented by one or more physical processors.

A method of controlling a soccer ball throwing device can include, invarious embodiments, establishing communication between a soccer ballthrowing device and a controller having computer hardware. The methodcan also include causing the soccer ball throwing device, with thecontroller, to perform an initial training program that comprises a setof one or more ball trapping drills, where the controller causes thesoccer ball throwing device to pitch one or more balls to a playerduring said one or more ball trapping drills, enabling the player topractice trapping the ball and thereby improve ball control skills. Themethod can also include recording player training data that includesinformation regarding training of the player performed during theinitial training program. Further, the method can include submitting theplayer training data from the controller over a network to a soccernetwork application along with a request for feedback from a remotecoach through the soccer network application, and in response tosubmitting the training session data, receiving a customized trainingprogram from the coach via the soccer network application. Thecustomized training program can include one or more second drills to beexecuted by the soccer ball throwing device. The method can also beimplemented by one or more physical processors.

A system for controlling a ball throwing device can include a ballmachine control module that can cause a soccer ball throwing device toperform an initial training program that includes a set of one or moreball trapping drills. The ball machine control module causes the soccerball throwing device to pitch one or more balls to a player during saidone or more ball trapping drills in certain embodiments, enabling theplayer to practice trapping the ball and thereby improve ball controlskills. The system can also include a training module implemented in oneor more processors. The training module can record player training datathat includes information regarding training of the player performedduring the initial training program, submit the player training dataover a network to a soccer network application along with a request forfeedback from a remote coach through the soccer network application, andin response to said submitting the training session data, receive acustomized training program from the coach via the soccer networkapplication. The customized training program can include one or moresecond drills to be executed by the soccer ball throwing device.

In some embodiments, non-transitory physical computer storage isprovided that includes instructions stored therein for implementing, inone or more processors, a system for controlling a ball throwing device.The system can include a ball machine control module that can cause asoccer ball throwing device to perform an initial training program thatincludes a set of one or more ball trapping drills. The ball machinecontrol module can cause the soccer ball throwing device to pitch one ormore balls to a player during said one or more ball trapping drills,enabling the player to practice trapping the ball and thereby improveball control skills. The system can also include a training module thatcan record player training data that includes information regardingtraining of the player performed during the initial training program,submit the player training data over a network to a soccer networkapplication along with a request for feedback from a remote coachthrough the soccer network application, and in response to submittingthe training session data, receive a customized training program fromthe coach via the soccer network application. The customized trainingprogram can include one or more second drills to be executed by thesoccer ball throwing device.

A method of controlling ball throwing devices can include, in someembodiments, receiving player training data from a plurality ofcontrollers of ball throwing machines. The player training data cancorrespond to a plurality of players. In addition, the player trainingdata can reflect usage by the players of the ball throwing machines. Themethod may also include electronically generating a remote coaching userinterface by a computer system including computer hardware. The remotecoaching user interface can include options for the coach to selectrecommended training programs for the players based on the playertraining data. The method can also include receiving, from the remotecoaching user interface, coach-selected training programs to be sent tothe plurality of controllers. Moreover, the method can include providingdata representing the selected training programs to the plurality ofcontrollers, thereby enabling the players to implement the selectedtraining programs in the respective ball throwing machines of theplayers.

Certain aspects, advantages and novel features of the inventions aredescribed herein. It is to be understood that not necessarily all suchadvantages may be achieved in accordance with any particular embodimentof the inventions disclosed herein. Thus, the inventions disclosedherein may be embodied or carried out in a manner that achieves orselects one advantage or group of advantages as taught herein withoutnecessarily achieving other advantages as may be taught or suggestedherein.

BRIEF DESCRIPTION OF THE DRAWINGS

The features disclosed herein are described below with reference to thedrawings. Throughout the drawings, reference numbers are re-used toindicate correspondence between referenced elements. The drawings areprovided to illustrate embodiments of the inventions described hereinand not to limit the scope thereof.

FIG. 1 is a perspective view of a ball throwing machine.

FIG. 2 is a cross-section of the ball throwing machine of FIG. 1.

FIG. 3 shows some of the internal components of the ball throwingmachine including portions of a ball delivery device.

FIG. 4 illustrates the bottom of the ball throwing machine.

FIG. 5 shows portions of a ball delivery device.

FIG. 6 illustrates an example training scenario using the ball throwingmachine in conjunction with a controller.

FIG. 7 illustrates an embodiment of a computing environment forfacilitating communications between the controller of FIG. 6 and asoccer network application.

FIG. 8 illustrates an embodiment of a ball machine control process thatmay be implemented by the controller of FIG. 6.

FIG. 9 illustrates an embodiment of a training process that may beimplemented using the ball throwing machine and the controller of FIG.6.

FIG. 10 illustrates an embodiment of a coaching process that may beimplemented at least in part by the soccer network application of FIG.7.

FIGS. 11 through 15 illustrate embodiments of controller user interfacesthat may be generated by the controller of FIG. 6.

FIGS. 16 and 17 illustrate embodiments of user interfaces that may begenerated by the soccer network application of FIG. 7.

DETAILED DESCRIPTION I. Introduction

As described above, a soccer player's first touch of the ball is animportant core skill to develop. A touch can be as simple as receiving aslow pass on the ground or as difficult as taking a top speed knucklingball out of the air and straight down onto one's foot. Touch enhancementis a continual process; youth and professionals alike perpetually trainto ever improve their first touch and ball handling skills. The skill oftouch is typically trained by players forming pairs and passing the ballto one another. This training method can produce results but tends tofall short in providing a disciplined approach to training that enablesprogress measurement and goal-oriented improvement. Further, thistechnique requires a player to find another individual with which topractice, which is not always practical, particularly for seriousathletes who devote significant time to their training.

This disclosure describes a specialized ball throwing machine that canbe used to improve a player's first touch and ball control, among otherbenefits. The ball throwing machine can be designed to throw, lob,pitch, or otherwise eject soccer balls toward a player, who can trap theballs or practice other ball control skills. The ball throwing machinemay be controlled using a controller in the form of a handheld computingdevice or the like. The controller can include software and hardwarethat enables the player to remotely control the machine, for example,wirelessly. The controller can include functionality for recording aplayer's progress with ball training, and the player can upload thisprogress information to a software network application, which may be aweb site or the like. The soccer network application can providefunctionality for a remote coach to analyze the player's progress andprovide a customized training program to the player based on theplayer's progress. As a result, the ball throwing machine can enable theplayer to track progress and receive remote coaching to improve thatprogress. These and other features of the ball throwing machine,controller, and associated soccer network application are described indetail below.

The game of soccer is commonly known in some countries as “football” or“association football.” For convenience, this specification referssolely to the term “soccer,” although such usage should be consideredsynonymous with “football” and “association football.” Further,embodiments of the ball throwing machine, controller, and soccer networkapplication described herein can be used or adapted for sports otherthan soccer, some examples of which are described below.

It should also be noted that although this specification refersprimarily to using a ball throwing machine to train ball trappingskills, the ball throwing machine can be used to train other skills. Forexample, the ball throwing machine can be used to train passing,shooting, and stopping a soccer ball, among other ball skills.

II. Example Ball Throwing Machine

A ball throwing machine 10 is shown in FIG. 1. The ball throwing machine10 can be used to pitch a ball, such as to deliver a ball to a user. Forexample, the ball throwing machine 10 can be used to deliver a soccerball or a specialized soccer-type ball to a user. The ball throwingmachine 10 can also be used with various other balls for various othersports.

The illustrated ball throwing machine 10 includes an outer housing 12with an upper section 14 and a lower section 16. The ball throwingmachine 10 can be that can be easily movable. For example, the ballthrowing machine can include one or more motorized wheels 18. Someembodiments may also include one or more handles for securing the ballthrowing machine while moving the same.

As can be seen in FIGS. 1 and 2, the upper section 14 includes a hopper30. The hopper 30 can be used to receive and/or store balls to later beejected or thrown by the ball throwing machine 10. The illustratedembodiment includes a high-volume or large storage-type hopper 30. Insome embodiments, the hopper can store as many as 25 balls. Of course,it will be understood that the hopper could hold more or less balls, asnecessary or desired.

Many different styles and types of hoppers can be used. As shown, thehopper 30 is a gravity-type hopper with a spiraling ramp 32 locatedaround and internal tube 34. The tube 34 can be used to impartstructural strength to the hopper an can also provide appropriatespacing such that balls within the hopper are able to properly rotateand move downward in the hopper. Alternatively, the tube 34 is notincluded in some embodiments. Rather, the hopper 30 merely includes thespiraling ramp 32. In another embodiment, the spiraling ramp 32 isomitted and the hopper 30 includes a tube 34 that holds a plurality ofballs.

In some embodiments, the hopper 30 can be transparent. For example, theouter material of the hopper may be clear Plexiglas or plastic, or athin mesh-like fabric. This transparency can allow the user to view theballs in the hopper 30 and identify when the hopper 30 needs to bereloaded. The hopper 30 can have a top portion 36 and a bottom portion38. The top portion 36 can be configured for receiving one or more ballsinto the hopper 30 and in some embodiments, can hold additional balls.The bottom portion can be configured to transition balls from the hopper30 into a ball staging area 42.

The hopper 30 can be used for storing balls when the ball throwingmachine 10 is in use and/or when the ball throwing machine 10 is not inuse. In some embodiments, the hopper 30 can be collapsible or detachableto decrease the size of the ball throwing machine 10, such as when theball throwing machine is not in use. In some embodiments, the tube 34can be a telescoping tube and the outer material of the hopper 30 can befabric, such that the hopper 30 can increase or decrease in size. Insome embodiments with the collapsible hopper 30, the top portion 36 canbe collapsed to sit on top of the bottom portion 38. Alternatively, thetube 34 can be configured to be removable to remove structural supportseparating the top portion 36 from the bottom portion 38.

Advantageously, in certain embodiments, the ball throwing machine 10 isdesigned to deliver soccer balls that are smaller than adult regulationsize soccer balls to thereby enable more effective training of balltrapping skills. The smaller surface area of such balls can make thesmaller balls harder to trap than regulation size balls (such as size“5” soccer balls). Training with smaller balls can therefore benefit aplayer using a larger, regulation-size ball in a match because theplayer may have obtained skills that transfer over to theeasier-to-trap, larger ball. In some embodiments, the balls used withthe ball throwing machine 10 are about half the size of regulation size5 balls, about a third of the size of regulation size 5 balls, about aquarter of the size of regulation size balls 5, or some other size. Foryouth players who may already be using a smaller ball than an adult ballin matches, the ball throwing machine 10 can employ even smaller ballsthan the youth players use in their matches. For instance, if youthplayer is used to using size 4 soccer balls, the ball throwing machinecan throw size 3 soccer balls or smaller, etc. However, in otherembodiments, regulation size balls are used instead of smaller balls.

The size of the balls used by the ball throwing machine 10 can besmaller than a regulation size 3 ball, even for older youth and adultplayers. For example, in one embodiment, the balls are preferably about152 mm in diameter. However, in other embodiments the balls can range insize from about 132 mm to about 172 mm in diameter while still providingsome or all of the benefits of the balls described herein. In stillother embodiments, the balls can range in size from about 115 mm to 215mm in diameter while still providing at least some of the benefitsdescribed herein.

A ball that may be used herein may have any of the followingcharacteristics: a rubber construction, a butyl bladder, one or morenylon plys (such as 1, 2, 3, or 4 or more nylon plys), spiral winding ofthe nylon plys, and the like. These and other characteristics of theballs, among others (including size, texture, weight, cover type, etc.)can be selected to achieve a desired liveliness or bounciness of theball. Different balls may be provided with different liveliness fordifferent levels of difficulty. For instance, a ball that has morebounce may be harder to trap and thus appropriate for a higher level ofdifficulty, while a ball with less bounce may be easier to trap and thusappropriate for a lower level of difficulty.

Moreover, the colors of the balls can be selected to target foot-eyecoordination. For example, the balls may be blue, green, or red, or acombination of the same, as these colors can be the easier to see thanother colors. Alternatively, colors may be selected that are less easyto see so as to increase the difficulty of training. Different colorsmay be provided for boys and girls, who may perceive colors slightlydifferently.

In one embodiment, the balls are not actual soccer balls. For example, aball having a smaller size than a regulation size ball can be consideredto be a ball other than a soccer ball. Counterintuitively, it can bebeneficial to train soccer skills (such as trapping) using balls thatare not soccer balls, such as any of the balls described herein. Ballsused in other sports can also be thrown by the ball throwing machine 10for the purposes of training soccer skills. Tennis balls, racquet balls,and squash balls, for instance, can be beneficially used to traintrapping skills.

Moving now to the bottom portion 16 of the outer housing 12, the bottomportion 16 is shown housing the ball staging area 42, as well as theball delivery device 40. As can be seen in FIG. 2, the ball staging area42 can include a ramp 24 that can hold one or more balls. The ramp 24can include one or more ball stops 26. The ball stops can be used tostop individual balls or the balls collectively.

For example, as shown, the ball staging area 42 includes three ballstops 26. In some embodiments, the ball stops 26 can include a solenoidconfigured to advance and/or retract a rod or other member in front of aball. The three balls stops 26 can allow the ball throwing machine 10 tocontrol the projection of the ball completely with the ball deliverydevice 40. For example, separating the balls with multiple ball stops 26can allow the ball delivery device 40 to pitch a ball without theinfluence of other balls acting or pushing upon the ball. It will beunderstood that the balls in the hopper may be pressing down on oneanother by gravity and could have an influencing effect on thetrajectory of the ball, if allowed to contact the ball being pitched.However, fewer than three ball stops 26 may be included in the machine10 instead.

As is shown, the bottom portion 16 of the outer housing also includes atleast one opening 20. The opening 20 can provide space for the ball tobe thrown through to the user. The opening 20 can be one of manydifferent shapes, such as oval, elliptical, rectangular, triangular, orany other desired shape. In some embodiments, the bottom portion 16 ofthe outer housing 12 includes a minimal amount of material, such that amajority, or at least a substantial portion, of the ball delivery device40 is exposed and not enclosed. In such embodiments, little to noportion of the outer housing may be between the ball delivery device 40and the user.

Turning now to FIG. 3, an embodiment of a ball delivery device 40 isshown. A ball delivery device 40 can include any number of variouscomponents. The ball delivery device 40 can be used to impart motion toa ball. In some embodiments, the ball delivery device 40 can be used tocontrol the trajectory of the ball, including the speed and angle atwhich the ball leaves the ball throwing machine 10. The ball deliverydevice 40 can perform these functions in various different mannersincluding those described below. It is to be understood that the balldelivery device 40 also encompasses various other systems and methods ofperforming the above functions, as well as, other, additional and/oralternative functions.

As illustrated, the ball delivery device 40 includes one or more wheelsor balls 42 which are used to impart speed, spin, and/or other featuresof trajectory to a ball. The ball delivery device 40 can also includeone or more motors 44 which are connected to the wheels 42 to therebydeliver speed and direction to the wheels 42. The ball delivery device40 can also include a control unit 46 and a power source 48, such asbatteries. The control unit 46 can include various features that can beused to control the ball delivery device 40. For example, the controlunit 46 can include electronic circuitry, a processor, and memory havingprogram instructions stored thereon for controlling the variouselectrical features of the ball delivery device 40, such as themotorized wheels 18 and actuators (described below). Further, thecontrol unit 46 can include a wireless network interface card (NIC) andantenna or wired NIC for communicating with a controller device thatsends commands to the ball throwing machine 10, as described below withrespect to FIG. 6.

The ball delivery device 40 may also include one or more actuators 50.The actuator 50 can be used to control an angle of the ball deliverydevice, including the wheels 42. The ball delivery device 40 can includea frame having one or more brackets 52, 54. The brackets 52, 54 can bepositioned in fixed relationship with one another. As shown, theactuator 50 is connected to at one end to bracket 52 and at an oppositeend to bracket 56. The bracket 56 can be attached to the wheels and insome embodiments, the motors 44. The bracket 56 can also be hingedlyattached to bracket 54. The actuator 50 can move to increase or decreasethe length of the actuator.

In the illustrated position of FIG. 3, the longitudinal axis of eachwheel 42, about which the wheel rotates, is generally vertical. Movingthe actuator 50 can change this position and orientation of the axis andwheel 42 as changing the length of the actuator 50 can change the angleor positional relationship between the bracket 56 and the frame,including brackets 52 and 54. When the actuator 50 is lengthened, thedistance between the bracket 52 and parts of the bracket 56 isincreased. When the actuator 50 is shortened, parts of the bracket 56are moved closer to the bracket 52. This can result in the axis movingeither upward or downward towards a horizontal orientation. It will beunderstood that changing the angle of the wheels 42 can change thetrajectory of the ball when it is ejected.

Moving now to FIGS. 4 and 5, another feature of the ball delivery device40 will be described. The ball delivery device 40 can also includefeatures to change the side-to-side trajectory of the ball. As can beseen, an actuator 50 can be located on the bottom of the ball throwingmachine 10. Such an actuator can be located either internally orexternally of the outer housing 12. A bracket 58 can be connected to thebracket 54 through a turntable 60. Such a connection can allow thebracket 54 to move with respect to the bracket 58. The actuator 50 canbe connected to both brackets 54, 58 such that movement of the actuator50 can change the positional relationship of portions of the bracket 54with the bracket 58.

Moving the actuator 50 illustrated in FIGS. 4 and 5 can change therelationship of a portion of the ball delivery device 40 with theopening 20. Thus, the ball delivery device can pitch the ball out theopening within a range of angles from the straight on position. Forexample, the ball delivery device can pitch the ball within ±10% or ±20%(or some other angle) of the straight-on position.

It will be understood that the ball delivery device 40 can function inmany different ways, including ways different from those describedherein. For example, rather than including an actuator, the balldelivery device 40 can be moved or positioned with one or more steppermotors connected directly between two rotating brackets. Further,although described as being primarily used for pitching soccer balls,the ball delivery device 40 can also be adapted to pitch other types ofballs, such as baseballs, softballs, tennis balls, racquet balls, squashballs, cricket balls, lacrosse balls, volleyballs, and the like.

III. Example Training and Computing Environments

FIG. 6 illustrates an example training scenario 100 for using the ballthrowing machine 10 in conjunction with a controller 120. In thetraining scenario 100, a player 130 is training trapping or other ballcontrol skills with the ball throwing machine 10. The player 130 may beany age or gender, and the ball throwing machine 10 can include settingsthat are appropriate for children, youth, and adults.

A controller 120 is also shown and is in wireless communication with theball throwing machine 10. The controller 120 can be a computing deviceof the player 130 (or the player's coach or parent), and may be, forexample, a smart phone, tablet, laptop, personal digital assistant(PDA), or other wireless handheld device, or even a desktop in someembodiments. The controller 120 can communicate wirelessly with awireless module in the ball throwing machine 10 (e.g., in the controlunit 46). Alternatively, the controller 120 can be coupled with the ballthrowing machine 10 using a cable or a docking station installed in theball throwing machine 10.

The controller 120 can include functionality for controlling thetraining programs that run on the ball throwing machine 10. For example,the controller 120 can include functionality for a user thereof, such asthe player 130, coach, or a parent, to select training programs to becommunicated to the ball throwing machine 10. Each training program caninclude a set of drills, commands, or instructions to be executed by theball throwing machine 10, such as how many balls to throw in a givenperiod of time, how fast, and with what trajectory. The trainingprograms can be selected and customized by the player 130, a coach, or aparent.

An optional camera 140 is shown in communication with the ball throwingmachine 10 via a cable 142. The camera 140 can take pictures or video ofthe player 130 during training sessions. The camera 140 can transmit thepictures and/or video to the ball throwing machine 10 over the cable 142(or a wireless link). In turn, the ball throwing machine 10 can providethe pictures and/or video to the controller 120 wirelessly.Alternatively, the camera 140 can communicate directly with thecontroller 120, for example, by wirelessly sending pictures and video tothe controller 120. Further, in some embodiments, images or video can betaken of the player 130 using a camera in the controller 120 or abuilt-in camera in the ball throwing machine 10 (not shown) instead ofor in addition to the camera 140. In addition, in some embodiments, thecamera 140 can communicate with player recognition software running in aprocessor or controller of the ball throwing machine 10. This playerrecognition software can locate a player and cause the ball throwingmachine 10 to automatically throw a ball to the player. The playerrecognition software can include facial recognition software but mayalso detect a player from features of the player other than the face.

Advantageously, in some embodiments, the player 130 can use thecontroller 120 to submit pictures, video, or other player training datato a remote web site or network application (described below withrespect to FIG. 7). The web site or network application may providefunctionality for a coach to evaluate the player training data andprovide feedback, including customized training programs that can beexecuted by the ball throwing machine 10.

FIG. 7 illustrates an embodiment of a computing environment 200 forfacilitating communications between the ball throwing machine 10, acontroller 220, and a soccer network application 260. Advantageously, incertain embodiments, the computing environment 200 enables players totrack player training data regarding training sessions with the ballthrowing machine 10 and provide the player training data to a coach viathe soccer network application 260. The coach can use the soccer networkapplication 260 to provide feedback to the player, including customizedtraining programs, based on the players' progress with the ball throwingmachine 10.

By way of overview, the ball throwing machine 10 communicates with thecontroller 220, for example, wirelessly using WiFi (IEEE 802.11x),Bluetooth, Zigbee, or any other standard protocol(s). The controller 220is a more detailed example of the controller 120 of FIG. 6 and can haveall the features of the controller 120 described above. The controller220 can communicate with the soccer network application 260 over anetwork 208, which may be a LAN, a WAN, the Internet, or combinations ofthe same. Devices 250 operated by coaches and/or recruiters may alsocommunicate with the soccer network application 260 (or directly withthe controller 220 or machine 10) over the network 208.

In the depicted embodiment, the controller 220 includes a ball machinecontrol module 222, a training module 224, and a safety module 226. Eachof these components can be implemented with hardware and/or software. Inone embodiment, the modules 222, 224, 226 are part of a controllerapplication installed on the controller 220. The controller applicationmay be obtained for installation on the controller 220 from anapplication store (such as the iTunes™ application store or Android™Market application store), via computer-readable media (such as a USBkey or DVD), or the like. In some embodiments, the controller 220 issold or otherwise provided together with the ball throwing machine 10with the controller application preinstalled. Other functionality mayalso be provided with the controller 220 in some implementations.

The ball machine control module 222 of the controller 220 can providefunctionality for a user (such as a player, coach, or parent etc.) tocontrol the ball machine 10. For instance, the ball machine controlmodule 222 can output a user interface that provides options for a userto select different types of training programs or individual ballthrowing characteristics to be implemented by the ball throwing machine10. This user interface can be implemented on a touch screen display ofthe controller 220 in some devices, although other types of controller220 displays may also be used. In response to receiving user inputregarding a desired training program or throwing pattern, the ballmachine control module 222 can send instructions or commands to the ballthrowing machine 10. A processor or other circuitry in the ball throwingmachine 10 (such as the control unit 46) can receive and execute theseinstructions. The ball machine control module 222 can therefore enable auser to control any functions of the ball throwing machine 10, includingbut not limited to ball velocity, ball delivery (e.g., air, ground,line, lob, or bounce), ball trajectory (e.g., angled, curved, orstraight), ball oscillation (e.g., side-to-side or middle-to-side), ballthrowing frequency (e.g., every user-specified number of seconds), andthe like.

The training module 224 can provide functionality for a user to recorddata regarding the player's usage of the ball throwing machine 10. Forexample, the training module 224 may provide a training user interfacethat enables a user to record this player training data (see, e.g., FIG.13). This player training data can include a log of the commands sent tothe machine 10, the commands executed by the machine 10, the user'ssuccess with traps or goals or other ball-control drills, video data,and the like. In one example implementation, the training module 224provides user interface controls (such as touch-screen controls) thatenable a user to input whether a trap is successful. The training module224 may also include voice recognition functionality, using anycommercially-available voice recognition software. A user can thereforedictate verbal training results to the training module 224, such as“successful trap” or “missed trap,” or simply just “success” or “miss,”or the like. The training module 224 can interpret the voice commandsand record the interpretation (e.g., a success or miss) in the playertraining data. The training module 224 can supply the player trainingdata to the soccer network application 260 (described below) over thenetwork 208.

The safety module 226 can provide a user interface that enables users tomanage safe use of the ball throwing machine 10. For instance, thesafety module 226 can provide parental controls or the like that enablea parent, coach, or other responsible person to manage access to theball throwing machine 10 or features thereof. It can be desirable tohave such features to prevent accidents that can occur, for example,from setting the ball velocity or throwing frequency too high foryounger players. These parental controls can include an authenticationmechanism (such as a username/password or other credential) for enablingaccess to the machine 10, control over ball-throwing parameters such asvelocity, and an idle or timeout feature that can shut down thecontroller 220 and/or ball throwing machine 10 after a timeout period ofinactivity (such as 30 seconds, a minute, or some other time). Any ofthese safety features can also be implemented directly in theelectronics of the ball throwing machine 10, rather than in thecontroller 220.

The soccer network application 260 can store player training datareceived from the training module 224 in a data repository 270. The datarepository 270 can include any form of physical computer data storage,as well as logical computer storage. For instance, the data repository270 can include one or more databases, associated physical storagemedia, and the like. The soccer network application 260 can includehardware and/or software for providing players (via the controllers 220or other devices), coaches, and recruiters with access to the playertraining data, among optionally other data and features. The soccernetwork application 260 includes, in the depicted embodiment, a coachingmodule 262, a social network module 264, and a recruiting module 266.These modules represent at least some of the functionality that thesoccer network application 260 may provide to players, coaches,recruiters, and others.

Each of the modules 262, 264, 266 can provide user interfaces for usersto access features of the modules 262, 264, 266. For instance, thecoaching module 262 can provide one or more user interfaces that enablea coach to access and analyze player training data for a plurality ofplayers associated with that coach. If the player training data includesvideo, for instance, the coaching module 262 can provide functionalityfor the coach to view videos of players. The coaching module 262 canalso provide functionality through one or more user interfaces for acoach to provide feedback to players. This feedback may be in the formof textual feedback, video feedback, or training program feedback. Acoach may, for instance, respond to the uploading of a player's trainingdata with comments on the player's form and suggest adjustments to theplayer's training program. Beneficially, in some embodiments, thecoaching module 262 also enables a coach to select or create a trainingprogram to provide to a player as homework or the like. The coachingmodule 262 may provide a user interface for creating a custom trainingprogram for a specific player (see FIG. 16).

Moreover, the coaching module 262 can enable a coach to better leveragehis or her time when training players. In the past, a coach hastypically spent a few hours per week with an entire team of players, andthe coach's ability to provide individual attention to those players hasbeen limited. Further, a coach is typically not present when a player ispracticing at home or with friends. However, with the soccer networkapplication 260, a coach can evaluate player training data for severalplayers and provide individualized feedback and training programrecommendations to those players, without leaving his or her home. Thus,the soccer network application 260 can enable coaches to focus moreindividual attention on the development of players' ball control andtrapping skills.

The social networking module 264 can provide functionality for differentplayers, coaches, and the like to interact together in an online soccercommunity. For example, the social networking module 264 can provideuser interfaces for creating player or coach pages, discussing soccertraining with teammates and friends, uploading pictures and video,linking to web sites regarding soccer or other topics, and otherfeatures that may be found in any social network. Generally, the socialnetwork provided by the social networking module 264 can enable users tokeep track of each other's progress in training with the ball throwingmachine 10 and encourage each other in their progress. The socialnetwork module 264 may also provide an event user interface that enablesusers to coordinate events, such as impromptu soccer games, among otherfeatures.

The recruiting module 266 can provide a recruiting user interface thatenables recruiters to examiner player data and/or for players or coachesto upload player data to recruiters. Some examples of recruiters thatcan use such features include high school recruiters, collegerecruiters, and professional recruiters. In one embodiment, therecruiting user interface enables recruiters to view player trainingdata obtained with respect to the ball throwing machine 10.Advantageously, in certain embodiments, player training data obtained inconjunction with the ball throwing machine 10 can provide a standardizedapproach to reviewing player performance. Other player data may also bestored in the data repository 270 and made available to recruiters viathe recruiting user interfaces, such as in-game data, coach reviews,scout reports, and the like.

It should be noted that the soccer network application 260 can beimplemented as one or more physical servers. These servers may begeographically dispersed or co-located. In addition, in someembodiments, the soccer network application 260 is implemented as acloud-computing platform. For example, the soccer network application260 can be implemented as one of a plurality of virtual machinesexecuting on a hypervisor, which can be a thin layer of softwareexecuting on a physical machine. Accordingly, the modules 262, 264, 266of the soccer network application 260 can be implemented in hardwareand/or software.

Further, it should be noted that although the features of FIGS. 6 and 7as well as the features in subsequent FIGURES can be implemented inconjunction with the ball throwing machine 10, other ball throwingmachines than the one explicitly described may also be used. Forexample, a throwing machine designed for a different sport can becontrolled by the controller 120 or 220, or a different soccer-ballthrowing machine can be used with the controller 120 or 220.

IV. Example Training Processes

FIG. 8 illustrates an embodiment of a ball machine control process 300that may be implemented by the controller 220 (or 120). The ball machinecontrol process 300 can enable a player to run customized trainingprograms on a ball throwing machine, such as the ball throwing machine10. Advantageously, these customized training programs can be designedby a remote coach who creates or selects the programs based on theplayer's progress with the ball throwing machine.

The process 300 begins at block 302, where the ball machine controlmodule 222 of the controller 220 establishes communication with a ballthrowing device. The ball machine control module 222 can establishcommunication in one embodiment according to a wireless or other networkprotocol. At block 304, the ball machine control module 222 causes theball throwing machine to perform an initial training program. Theperformance of this initial training program is described in more detailbelow with respect to FIG. 9. As an overview, however, the initialtraining program can include one or more drills, which may includeuser-defined ball throwing commands or stored ball-throwing commands(which may have been stored by the player or coach).

At block 306, the training module 224 of the controller 220 recordsplaying training data. There are many ways that this training data maybe recorded, and many possible forms that the training data may take.Player training data can be recorded by the training module 224automatically in one embodiment. For example, the training module 224can log the commands issued by the controller 220 to the ball throwingmachine, or may log the commands actually executed by the machine. Forinstance, the machine can report to the controller 220 which commandsexecuted successfully and which did not execute successfully. Successfulexecution of a command can mean, in one embodiment, that the ballthrowing machine performed a throw. The amount of data that the trainingmodule 224 collects regarding issued or executed commands can vary aswell. This data can include characteristics of a throw, such as theball's velocity (or desired velocity), delivery (or desired delivery),trajectory (or desired trajectory), oscillation (or desiredoscillation), and/or frequency (or desired frequency). Any subset ofthis information may be collected and stored by the training module 224in computer storage. Alternatively, the training module 224 merelyrecords that a throw command was issued or occurred. In yet anotherimplementation, the training module 224 records the target area ortarget zone on the player's body that the throw is aimed at (see FIG.12).

As described above, the training module 224 may provide a user interfaceor voice recognition that enables a user to record whether a trap wassuccessful. The player training data may include this success/lack ofsuccess information in addition to, or instead of, the more detailedthrow or ball characteristics described above. In some embodiments, thetraining module 224 obtains an electronic indication of whether a playersuccessfully trapped a ball or at least came in contact with the ball.This electronic indication can come from one or more sensors embedded inor placed on a players' clothing. Sensors can be placed or embeddedanywhere on or in a player's clothing or on a player's person. Someexample areas where sensors may be placed include the chest area, legs,thighs, feet, on the player's head, or any other location on theplayer's clothing or body. The sensors can be pressure sensors, contactsensors, or any other form of sensor that can produce an electronicoutput responsive to contact with a ball. For example, a player's shoemay have sensors embedded in one or more surfaces of the shoe to trackwhether the ball came into contact with such surfaces. Further, in someimplementations sensors may be placed in a goal net (and/or on theposts) to determine whether the player has shot a ball in the goal. Thesensors may communicate wirelessly with the controller 220 and/or ballthrowing machine to provide sensor data to the training module 224. Thetraining module 224 can incorporate the raw sensor data or processedversions thereof into the player training data. Accordingly, the playertraining data can include automatic indications of whether a trap wassuccessful, or at least whether the ball came into contact with aplayer. One or more sensors can also be embedded in any of the ballsdescribed herein to track trapping, shooting, and other soccer skills.

The player training data may also include video data as described above.Further, the training module 224 can record any subset of the trainingdata described herein. At block 308, the training module 224 submits theplayer training data to the soccer network application 260 with arequest for feedback from a coach. This request for feedback may beexplicit or implicit. For instance, a player can access a feature of thetraining module 224 that enables submission of player training data tothe soccer network application 260. The soccer network application 260may in turn make this player training data available to a coach of theplayer, or to a pool of coaches from which one is assigned or who picksthe player training data for analysis. In another example scenario, theplayer can explicitly request the feedback of a particular coach whensubmitting the player training data to the soccer network application260.

At block 310, the training module 224 receives a customized trainingprogram from the coach through the soccer network application 260. Thecustomized training program can have any characteristics of any of thetraining programs herein. In one embodiment, the customized trainingprogram received includes a set of commands that the ball machinecontrol module 222 can transmit to the ball control machine. In anotherembodiment, the coach can provide textual, verbal, or video instructionsto the player regarding how to customize the player's training. Thecoach may also provide both an actual training program (including drillsor machine commands) and textual, verbal, and/or video feedback. Itshould be understood, however, that the coach may not actually providemachine-level commands to the controller 220 (although this can be donein some embodiments). Rather, the soccer network application 260 canprovide one or more user interfaces that enable a coach to select ordefine a training program having one or more drills. In response to thatselection or definition, the soccer network application 260 can generatethe appropriate commands that can be executed on the ball throwingmachine.

At block 312, the ball machine control module 222 causes the ballthrowing device to perform the customized training program. Thus, theball machine control process 300 can enable a player to receiveindividualized attention from a remote coach on ball trapping skills orother soccer skills.

FIG. 9 illustrates an embodiment of a training process 400 that may beimplemented using the ball throwing machine 10 and the controller 120 or220. The training process 400 is a more detailed example implementationof the initial training program block 304 described above with respectto FIG. 8. The training process 400 may be implemented, for example, bythe ball machine control module 222 of the controller 220.

At block 402, the ball machine control module 222 receives a userselection of training mode. A variety of training modes may be provided.These training modes may include, for example, the ability to access astored program (or a program over a network), and the ability to performcustom training. This custom training can be a “free-play” type oftraining, where a user can define each ball's throwing characteristicsas they are thrown. Although not shown, a random play mode is alsoavailable in some implementations, enabling a user to select a randomseries of throws having random characteristics (such as random velocity,angle, trajectory, and so forth). The custom training can also involvethe user creating his or her own training program, which the user maysubsequently store in memory of the controller 220 or ball throwingmachine. The controller 220 may also provide functionality (such as auser interface or user interface control) for users to uploads customtraining programs created with the controller 220 to the soccer networkapplication 260, where other players or coaches can download the customtraining programs. Further, the soccer network application 260 canprovide user interface options to comment on and/or rate custom trainingprograms, thereby enabling users to better decide which custom trainingprograms to download.

At decision block 402, the ball machine control module 222 determineswhether the user selection is for a stored program or custom commands.If the selection was for a stored program, the ball machine controlmodule 222 accesses the stored program at block 406. The stored programmay be a program created by the user and saved as a “favorite” programor the like. Alternatively, the stored program can be a training programprovided by a coach. If the user selection was for a custom program, theball machine control module 222 receives a user selection of customcommands at block 408. The ball machine control module 222 of thecontroller 220 sends the commands to the ball throwing device at block410, which executes the commands at block 412.

FIG. 10 illustrates an embodiment of a coaching process 500 that may beimplemented at least in part by the soccer network application 260. Inparticular, the coaching process 500 can be implemented at least in partby the coaching module 262. The coaching process 500 can advantageouslyenable a coach to leverage his or her time to customize training formultiple players without having to be physically present with each ofthose players.

At block 502, the coaching module 262 receives player training data froma plurality of controllers of ball throwing machines, such as any of thecontrollers or machines described above. At block 504, the coachingmodule 262 electronically generates a remote coaching interface havingoptions for selecting or defining training programs (see FIG. 16,described below). For each player, at block 506 the coaching modulereceives a coach selection of a customized training program based on theplayer training data for that player. In one embodiment, the coachselects or creates the training program. In another embodiment, thesoccer network application 260 recommends the training program based onan automated analysis of the player training data. For example, thenetwork application 260 can recommend a training program that isautomatically customized to a player based on any of the following:previous drills performed by the player, age of the player, skill levelof the player, a player's position, a past or recommended heart ratetarget for the player, combinations of the same, or the like. At block508, the coaching module 262 provides data representing the customizedtraining program for each player to the player's controller.

V. Example User Interfaces

FIGS. 11 through 17 illustrate embodiments of controller user interfaces600-1200 that may be generated by the controller 120 or 220. Each ofthese user interfaces 600-1200 may be generated by an application on ahandheld computing device, such as a tablet or smartphone. In addition,the user interfaces 600-1200 may also be generated on another computingdevice, such as a laptop or desktop, as part of a web page rendered by abrowser or by other software. In the example embodiments shown, FIGS. 11through 15 illustrate example aspects of a controller application, whileFIGS. 16 and 17 illustrate example aspects of a soccer networkapplication.

Referring specifically to FIG. 11, a controller user interface 600 isshown on a tablet device 601 for illustrative purposes, although otherdevices may be used to render the controller user interface 600. Thecontroller user interface 600 includes controls 610 for accessingvarious options and may be generated by the ball machine control module222. Example options shown include options to view product (ballmachine) stats, create a new training profile to begin training,download player or team stats (from the soccer network application), andenabling a live camera feed. An addition control 620 is provided forviewing stored videos. These videos can be videos of the player,training videos on how to use the machine, or tutorials on how toimprove soccer skills, to name a few.

FIG. 12 illustrates another controller user interface 700, shown on theexample tablet device 601 for illustrative purposes. The user interface700 may be generated by the ball machine control module 222. Thecontroller user interface 700 includes controls 710 for controllingvarious ball-delivery options, which enable a user to select whether toreceive a ball on the ground, on the bounce, or in the air, or someother custom setting. Statistics 720 regarding the player's trainingdrills are also shown, which indicate that for thigh traps, the playerhas made 58% successful traps, 22% successful finishes (e.g., shots ongoal after trapping the ball), and 15 consecutive finishes. A graphic730 illustrates a part of the player's body on which the ball should betrapped for a particular drill. In the embodiment shown, the graphic 730highlights the player's thigh as the target zone 732 to which the ballwill be thrown and trapped. In one embodiment, the user may select atarget zone 731, 732, or 733 on the graphic 730 (using a finger, mouse,or the other input mechanism) to cause balls to be thrown to a differentarea of the player's body. For example, selection of a foot target zone733 can cause the ball throwing machine to throw balls toward theplayer's feet.

More particularly, in one embodiment, selection of a foot target zonecan cause the machine to throw a ball along the ground, or lob the balltoward the player's feet. The distance or approximate distance of theplayer to the machine may be input by a user into the controller 220 tothereby enable the machine to make such a lob. Similarly, selection of athigh or chest target zone can cause the controller 220 can cause themachine to lob, bounce, or line drive the ball to a player's thigh orchest. The controller 220 may also provide functionality for othertarget zones to be selected, such as the head or the hands (forgoalies). For example, the controller 220 can enable a player to selecta spot away from the player where the player is to dive and catch theball with his or her hands.

In FIG. 13, another controller user interface 800 is shown, alsoillustrated on the table device 601. The controller user interface 800includes controls for a user to edit a training session by accessing adrill forum, inputting a new drill profile, viewing technical demos, oraccessing a drill training library from which to select new drills. Thedrill forum can allow players to share drills and training ideas and canbe implemented in a web site or other network application. Anothercontrol 820 is provided for accessing a video archive of drills. Theuser may record a training session using any of the recording techniquesdescribed above by selecting a record control 930. The record control930 is an example of a control that may be provided by the trainingmodule 224 to record player training data. A specific selected drill 940is also shown, which includes a series of projected ball trajectories941. A demo control 942 is provided to enable a user to view a demoanimation (or video) of how the drill 940 is to be performed.

FIGS. 14 and 15 illustrate additional example controller user interfaces900, 1000 implemented in the context of a smartphone 901. It should beunderstood, however, that the user interfaces 900, 1000 may beimplemented in other devices. Likewise, the other user interfacesdescribed herein may be implemented on a smart phone. In FIG. 14, theuser interface 900 includes arrow controls 910, 912, 920, 922 and anglecontrols 930, 940 to select a ball to be thrown in a specific direction.For example, selection of the up control 910 or down control 912 at anangle 930 of 15 degrees can cause the ball to be thrown up or down at anangle of 15 degrees from a horizontal plane (e.g., the ground).Similarly, selection of the left control 920 or right control 922 at anangle 940 of 10 degrees can cause the ball to be thrown left or right atan angle of 10 degrees from the vertical plane (e.g., perpendicular tothe ground and intersecting the machine and the player). Multiple onesof the controls may be selected for any given throw. For instance, theup arrow 910 and the left arrow 920 may be selected simultaneously tocause a ball to be thrown to the upper left of the player at specifiedangles 930, 940.

In FIG. 15, the controller user interface 1000 includes a target zone1020 that can be selected by a user, to which the ball machine willattempt to throw a ball. This target zone 1020 is shown relative to agraphic image of a player 1010. Thus, in the depicted embodiment, thetarget zone 1020 is to the right of the player's 1010 head, enabling theplayer to practice heading the ball. Statistics 1012 regarding theplayer, such as the player's name, height, and the time of the trainingprogram are shown as illustrative example statistics. Similarly, thetime remaining 1014 in the program is also shown.

Referring to FIG. 16, an example coaching user interface 1100 isdepicted as being in a web browser. A coach may access the coaching userinterface via a web browser or other application software. The coachinguser interface 1100 includes selectable controls 1110 that represent thecoach's players, which include information such as their names,positions, their player training data, and so forth. Coach-selection ofone of the player controls 1110 can cause a curriculum selection display1120 to be produced on the user interface 1100 as well as playertraining data 1140 for a particular player. In an alternativeembodiment, the user interface 1100 can enable the coach to createtraining programs without first selecting a player. The coach can savesuch training programs for subsequent selection by a player. Further, insome embodiments, the user interface 1100 may be used by a player tocreate a custom training program or modify another user's customtraining program online. The player can then use the user interface 1100to send the custom training program to a controller (220).

The example player training data 1140 shown includes data regarding themost recent session the player had with the ball throwing machine. Thisdata includes trap completion data 1144 and video 1146. A button link1148 to previous sessions is also provided. The curriculum selectiondisplay 1120 includes various controls 1122, 1124 that enable a coach todefine a training program. These controls include a selection control1122 for selecting a stored (e.g., previously-created) program andcreation controls 1124 for creating a custom program. Some exampleparameters for creating a custom program are depicted with respect tothe controls 1124, enabling a coach to define for each ball in a programits various characteristics (such as ball delivery type, velocity,oscillation, etc.). These characteristics are merely examples. In otherembodiments, for instance, the coaching user interface 1100 may providefunctionality for a coach to input the types of target zones each ballis directed to, such as the thigh, chest, foot, etc., in addition to orinstead of the characteristics shown.

FIG. 17 illustrates an example social networking user interface 1200that may be generated by the soccer network application 260. The socialnetworking user interface 1200 includes profile information for aplayer, community features for discussing training progress, videos, andother related social networking features. For example, some potentialfeatures of the social networking user interface 1200 or other such userinterfaces can include, among others, depicting of results of trainingor games, providing of tips and training advice, blogs, videos, playerratings, player rankings (including possibly highlight rankings forranking impressive video-recorded training sessions), help requestfunctionality for asking an expert or coach for help, comments from aprofessional, online webinars and training, contests, eventorganizations, recruiting tips, other recruiting features, generalfitness training, and the like.

VI. Terminology

Many other variations than those described herein will be apparent fromthis disclosure. For example, depending on the embodiment, certain acts,events, or functions of any of the algorithms described herein can beperformed in a different sequence, can be added, merged, or left out alltogether (e.g., not all described acts or events are necessary for thepractice of the algorithms). Moreover, in certain embodiments, acts orevents can be performed concurrently, e.g., through multi-threadedprocessing, interrupt processing, or multiple processors or processorcores or on other parallel architectures, rather than sequentially. Inaddition, different tasks or processes can be performed by differentmachines and/or computing systems that can function together. Althoughcertain computer-implemented tasks are described as being performed by aparticular entity, other embodiments are possible in which these tasksare performed by a different entity.

The various illustrative logical blocks, modules, and algorithm stepsdescribed in connection with the embodiments disclosed herein can beimplemented as electronic hardware, computer software, or combinationsof both. To clearly illustrate this interchangeability of hardware andsoftware, various illustrative components, blocks, modules, and stepshave been described above generally in terms of their functionality.Whether such functionality is implemented as hardware or softwaredepends upon the particular application and design constraints imposedon the overall system. The described functionality can be implemented invarying ways for each particular application, but such implementationdecisions should not be interpreted as causing a departure from thescope of the disclosure.

The various illustrative logical blocks and modules described inconnection with the embodiments disclosed herein can be implemented orperformed by a machine, such as a general purpose processor, a digitalsignal processor (DSP), an application specific integrated circuit(ASIC), a field programmable gate array (FPGA) or other programmablelogic device, discrete gate or transistor logic, discrete hardwarecomponents, or any combination thereof designed to perform the functionsdescribed herein. A general purpose processor can be a microprocessor,but in the alternative, the processor can be a controller,microcontroller, or state machine, combinations of the same, or thelike. A processor can also be implemented as a combination of computingdevices, e.g., a combination of a DSP and a microprocessor, a pluralityof microprocessors, one or more microprocessors in conjunction with aDSP core, or any other such configuration. A computing environment caninclude any type of computer system, including, but not limited to, acomputer system based on a microprocessor, a mainframe computer, adigital signal processor, a portable computing device, a personalorganizer, a device controller, and a computational engine within anappliance, to name a few.

The steps of a method, process, or algorithm described in connectionwith the embodiments disclosed herein can be embodied directly inhardware, in a software module executed by a processor, or in acombination of the two. A software module can reside in RAM memory,flash memory, ROM memory, EPROM memory, EEPROM memory, registers, harddisk, a removable disk, a CD-ROM, or any other form of non-transitorycomputer-readable storage medium, media, or physical computer storageknown in the art. An exemplary storage medium can be coupled to theprocessor such that the processor can read information from, and writeinformation to, the storage medium. In the alternative, the storagemedium can be integral to the processor. The processor and the storagemedium can reside in an ASIC. The ASIC can reside in a user terminal. Inthe alternative, the processor and the storage medium can reside asdiscrete components in a user terminal.

Conditional language used herein, such as, among others, “can,” “might,”“may,” “e.g.,” and the like, unless specifically stated otherwise, orotherwise understood within the context as used, is generally intendedto convey that certain embodiments include, while other embodiments donot include, certain features, elements and/or states. Thus, suchconditional language is not generally intended to imply that features,elements and/or states are in any way required for one or moreembodiments or that one or more embodiments necessarily include logicfor deciding, with or without author input or prompting, whether thesefeatures, elements and/or states are included or are to be performed inany particular embodiment. The terms “comprising,” “including,”“having,” and the like are synonymous and are used inclusively, in anopen-ended fashion, and do not exclude additional elements, features,acts, operations, and so forth. Also, the term “or” is used in itsinclusive sense (and not in its exclusive sense) so that when used, forexample, to connect a list of elements, the term “or” means one, some,or all of the elements in the list.

While the above detailed description has shown, described, and pointedout novel features as applied to various embodiments, it will beunderstood that various omissions, substitutions, and changes in theform and details of the devices or algorithms illustrated can be madewithout departing from the spirit of the disclosure. As will berecognized, certain embodiments of the inventions described herein canbe embodied within a form that does not provide all of the features andbenefits set forth herein, as some features can be used or practicedseparately from others.

What is claimed is:
 1. A soccer ball throwing device comprising: ahopper configured to hold a plurality of soccer balls; a ball deliverydevice configured to receive the soccer balls from the hopper, the balldelivery device comprising: one or more wheels configured to impartmotion to one of the soccer balls, and a frame attached to the one ormore wheels, wherein the frame is positionable to control a trajectoryof the ball; a ball delivery control circuit configured to control theposition of the frame and the speed of the one or more wheels; and acontroller in communication with the ball delivery control circuit, thecontroller comprising one or more processors configured to at least:cause the soccer ball throwing device to perform an initial trainingprogram that comprises a set of one or more ball trapping drills,wherein the controller causes the soccer ball throwing device to pitchone or more of the soccer balls to a player during said one or more balltrapping drills, enabling the player to practice trapping the ball andthereby improve ball control skills; record player training data, theplayer training data comprising information regarding training of theplayer performed during the initial training program; submit the playertraining data from the controller over a network to a soccer networkapplication along with a request for feedback from a remote coachthrough the soccer network application; and in response to saidsubmission of the training session data, receive a customized trainingprogram from the coach via the soccer network application, thecustomized training program comprising one or more second drills to beexecuted by the soccer ball throwing device.
 2. The soccer ball throwingdevice of claim 1, wherein the angle of trajectory comprises an up anddown angle and a side to side angle.
 3. The soccer ball throwing deviceof claim 1, wherein the frame comprises a first bracket, a secondbracket, and a mechanical actuator, wherein the mechanical actuator isconfigured to change a positionable relationship of the first bracketwith respect to the second bracket.
 4. The soccer ball throwing deviceof claim 1, further comprising a turntable configured to move the framefrom side to side.
 5. The soccer ball throwing device of claim 1,wherein the ball delivery device is configured to deliver soccer ballsthat are smaller than adult regulation size soccer balls to therebyenable more effective training of ball trapping skills.
 6. A method ofcontrolling a soccer ball throwing device, the method comprising:providing a soccer ball throwing device comprising: a hopper configuredto hold a plurality of soccer balls, a ball delivery device configuredto receive the soccer balls from the hopper, the ball delivery devicecomprising: one or more wheels configured to impart motion to one of thesoccer balls, and a frame attached to the one or more wheels, whereinthe frame is positionable to control a trajectory of the ball, and aball delivery control circuit configured to control the position of theframe and the speed of the one or more wheels; communicating with thesoccer ball throwing device via a controller comprising computerhardware; causing the soccer ball throwing device, with the controller,to perform an initial training program that comprises a set of one ormore ball trapping drills, wherein the controller causes the soccer ballthrowing device to pitch one or more balls to a player during said oneor more ball trapping drills, enabling the player to practice trappingthe ball and thereby improve ball control skills; recording playertraining data, the player training data comprising information regardingtraining of the player performed during the initial training program;submitting the player training data from the controller over a networkto a soccer network application along with a request for feedback from aremote coach through the soccer network application; and in response tosaid submitting the training session data, receiving a customizedtraining program from the coach via the soccer network application, thecustomized training program comprising one or more second drills to beexecuted by the soccer ball throwing device; wherein said method isimplemented by one or more physical processors.
 7. The method of claim6, wherein the ball delivery device is configured to deliver soccerballs that are smaller than adult regulation size soccer balls tothereby enable more effective training of ball trapping skills.
 8. Amethod of controlling a soccer ball throwing device, the methodcomprising: establishing communication between a soccer ball throwingdevice and a controller comprising computer hardware; causing the soccerball throwing device, with the controller, to perform an initialtraining program that comprises a set of one or more ball trappingdrills, wherein the controller causes the soccer ball throwing device topitch one or more balls to a player during said one or more balltrapping drills, enabling the player to practice trapping the ball andthereby improve ball control skills; recording player training data, theplayer training data comprising information regarding training of theplayer performed during the initial training program; submitting theplayer training data from the controller over a network to a soccernetwork application along with a request for feedback from a remotecoach through the soccer network application; and in response to saidsubmitting the training session data, receiving a customized trainingprogram from the coach via the soccer network application, thecustomized training program comprising one or more second drills to beexecuted by the soccer ball throwing device; wherein said method isimplemented by one or more physical processors.
 9. The method of claim8, wherein said causing the soccer ball throwing device to perform theinitial training program comprises causing the soccer ball throwingdevice to pitch a ball to a specific trap location on the player. 10.The method of claim 9, further comprising providing functionality forthe player to select the specific trap location from among one or moreof the following: a foot, a thigh, a leg, the chest, a shoulder, and thehead.
 11. The method of claim 8, wherein said causing the soccer ballthrowing device to perform the initial training program comprisescausing the soccer ball throwing device to perform a specific type ofthrow.
 12. The method of claim 11, wherein available type of throwscomprises one or more of the following: throws on the ground, throws inthe air, and throws that include a bounce.
 13. The method of claim 8,wherein the player training data comprises video of the player capturedduring execution of the initial training program.
 14. The method ofclaim 13, wherein the video is configured to be captured by one or moreof the following: the controller, a camera installed on the soccer ballthrowing device, and a separate camera in communication with the soccerball throwing device.
 15. A system for controlling a ball throwingdevice, the system comprising: a ball machine control module configuredto cause a soccer ball throwing device to perform an initial trainingprogram that comprises a set of one or more ball trapping drills,wherein the ball machine control module causes the soccer ball throwingdevice to pitch one or more balls to a player during said one or moreball trapping drills, enabling the player to practice trapping the balland thereby improve ball control skills; and a training moduleimplemented in one or more processors, the training module configuredto: record player training data, the player training data comprisinginformation regarding training of the player performed during theinitial training program, submit the player training data over a networkto a soccer network application along with a request for feedback from aremote coach through the soccer network application, and in response tosaid submitting the training session data, receive a customized trainingprogram from the coach via the soccer network application, thecustomized training program comprising one or more second drills to beexecuted by the soccer ball throwing device.
 16. The system of claim 15,wherein the player training data comprises a log of pitches made by thesoccer ball throwing device.
 17. The system of claim 16, wherein theplayer training data comprises a log of successful traps made by theplayer during the initial training session.
 18. The system of claim 17,wherein the log of successful traps is populated by input from theplayer.
 19. The system of claim 17, wherein the log of successful trapscomprises a trap completion percentage.
 20. The system of claim 15,further comprising a safety module configured to enable a user toselectively control access to the soccer ball throwing device by theplayer.
 21. The system of claim 20, wherein the safety module is furtherconfigured to enable the user to place a limit on ball throwingvelocity.
 22. The system of claim 20, wherein the safety module isfurther configured to enable the user to input a password to enableactuation of the ball throwing device.
 23. The system of claim 20,wherein the safety module is configured to automatically disable thesoccer ball throwing device after a period of idle time.
 24. The systemof claim 15, further comprising a favorites module configured to enablethe player to save favorite training drills with respect to the soccerball throwing device.
 25. The system of claim 15, wherein the ballmachine control module is further configured to provide functionalityfor user selection of a target zone of the player's body for delivery ofa ball.
 26. The system of claim 27, wherein the user selection of thetarget zone causes the soccer ball throwing device to throw the balltoward the selected target zone.
 27. Non-transitory physical computerstorage comprising instructions stored therein for implementing, in oneor more processors, a system for controlling a ball throwing device, thesystem comprising: a ball machine control module configured to cause asoccer ball throwing device to perform an initial training program thatcomprises a set of one or more ball trapping drills, wherein the ballmachine control module causes the soccer ball throwing device to pitchone or more balls to a player during said one or more ball trappingdrills, enabling the player to practice trapping the ball and therebyimprove ball control skills; and a training module configured to recordplayer training data, the player training data comprising informationregarding training of the player performed during the initial trainingprogram, submit the player training data over a network to a soccernetwork application along with a request for feedback from a remotecoach through the soccer network application, and in response to saidsubmitting the training session data, receive a customized trainingprogram from the coach via the soccer network application, thecustomized training program comprising one or more second drills to beexecuted by the soccer ball throwing device.
 28. A method of controllingball throwing devices, the method comprising: receiving player trainingdata from a plurality of controllers of ball throwing machines, theplayer training data corresponding to a plurality of players, the playertraining data reflecting usage by the players of the ball throwingmachines; electronically generating a remote coaching user interface bya computer system comprising computer hardware, the remote coaching userinterface comprising options for the coach to select recommendedtraining programs for the players based on the player training data;receiving, from the remote coaching user interface, coach-selectedtraining programs to be sent to the plurality of controllers; andproviding data representing the selected training programs to theplurality of controllers, thereby enabling the players to implement theselected training programs in the respective ball throwing machines ofthe players.
 29. The method of claim 28, wherein said remote coachinguser interface provides functionality for the coach to specify trapzones to be trained.
 30. The method of claim 28, wherein said remotecoaching user interface provides functionality for the coach to specifyone or more of the following: ball delivery modes, ball deliveryfrequency, ball delivery velocity, a ball delivery sequence, and anumber of balls to be delivered.
 31. The method of claim 29, wherein theball delivery modes comprise one or more of the following: grounddelivery, bounce delivery, and lob delivery.
 32. The method of claim 28,wherein the player training data of a specific player comprises video ofthe specific player using one of the ball throwing machines.
 33. Themethod of claim 28, further comprising electronically generating arecruiting user interface that comprises functionality for making theplayer training data available to a recruiter.
 34. The method of claim28, further comprising providing social networking functionality thatallows the plurality of players to track one another's player trainingdata.